import axios from '@/plugin/axios'

const wx = window.jWeixin || require('weixin-js-sdk');

class WxHub {
    init(config) {
        return new Promise((resolve, reject) => {
            wx.ready(() => (resolve()));
            wx.error(e => (console.log(e)));

            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: config.appId, // 必填，公众号的唯一标识
                timestamp: config.timestamp, // 必填，生成签名的时间戳
                nonceStr: config.nonceStr, // 必填，生成签名的随机串
                signature: config.signature,// 必填，签名
                // 必填，需要使用的JS接口列表
                jsApiList: ['chooseImage', 'previewImage', 'uploadImage', 'getLocalImgData', 'updateAppMessageShareData']

            })
        });
    }

    // 开始微信配置
    start() {
        const data = {url: location.href};
        const options = {url: 'weixin/web', method: 'post', data};

        const vm = this;
        return new Promise((resolve, reject) => {
            axios(options).then(config => {
                vm.init(config).then(() => resolve(wx))
            }).catch(err => {
                console.log('init weixin config fail', err);
            })
        });
    }
}

export default new WxHub();
